iT邦幫忙

2021 iThome 鐵人賽

DAY 20
0

確認樹是不是從任意中間節點切開時,左子樹值皆小於中間節點,右子樹皆大於中間節點。

程式碼

class Solution {
public:
    bool isValidBST(TreeNode* root) {
        return frule(root, NULL, NULL);
    }
private:
    bool frule(TreeNode* cur, TreeNode* mini, TreeNode* maxi) {
        if (!cur) return true;
        if ( mini )
            if ( cur->val <= mini->val )
                return false;
        if ( maxi )
            if ( cur->val >= maxi->val)
                return false;

        return frule(cur->left, mini, cur) && frule(cur->right, cur, maxi);
    }
    
};

參考:
https://leetcode.com/problems/validate-binary-search-tree/discuss/1504859/0-ms-faster-than-100.00-of-C%2B%2B-online-submissions-for-Validate-Binary-Search-Tree.


上一篇
Leetcode: 94. Binary Tree Inorder Traversal
下一篇
VR的3D是偽3D
系列文
來解數學跟刷圖論跟幾何程式題或者我突然想研究的主題33
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言